/* 排版工具类 */

/* 字体大小 */
.text-xs { font-size: 0.75rem !important; }
.text-sm { font-size: 0.875rem !important; }
.text-base { font-size: 1rem !important; }
.text-lg { font-size: 1.125rem !important; }
.text-xl { font-size: 1.25rem !important; }
.text-2xl { font-size: 1.5rem !important; }
.text-3xl { font-size: 1.875rem !important; }
.text-4xl { font-size: 2.25rem !important; }
.text-5xl { font-size: 3rem !important; }
.text-6xl { font-size: 3.75rem !important; }

/* 字体粗细 */
.font-thin { font-weight: 100 !important; }
.font-light { font-weight: 300 !important; }
.font-normal { font-weight: 400 !important; }
.font-medium { font-weight: 500 !important; }
.font-semibold { font-weight: 600 !important; }
.font-bold { font-weight: 700 !important; }
.font-extrabold { font-weight: 800 !important; }
.font-black { font-weight: 900 !important; }

/* 行高 */
.leading-none { line-height: 1 !important; }
.leading-tight { line-height: 1.25 !important; }
.leading-snug { line-height: 1.375 !important; }
.leading-normal { line-height: 1.5 !important; }
.leading-relaxed { line-height: 1.625 !important; }
.leading-loose { line-height: 2 !important; }

/* 文字对齐 */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }
.text-justify { text-align: justify !important; }

/* 文字颜色 */
.text-primary { color: #007bff !important; }
.text-secondary { color: #6c757d !important; }
.text-success { color: #28a745 !important; }
.text-danger { color: #dc3545 !important; }
.text-warning { color: #ffc107 !important; }
.text-info { color: #17a2b8 !important; }
.text-light { color: #f8f9fa !important; }
.text-dark { color: #343a40 !important; }
.text-muted { color: #6c757d !important; }
.text-white { color: #ffffff !important; }
.text-black { color: #000000 !important; }

/* 文字装饰 */
.underline { text-decoration: underline !important; }
.no-underline { text-decoration: none !important; }
.line-through { text-decoration: line-through !important; }

/* 文字转换 */
.uppercase { text-transform: uppercase !important; }
.lowercase { text-transform: lowercase !important; }
.capitalize { text-transform: capitalize !important; }
.normal-case { text-transform: none !important; }

/* 字母间距 */
.tracking-tighter { letter-spacing: -0.05em !important; }
.tracking-tight { letter-spacing: -0.025em !important; }
.tracking-normal { letter-spacing: 0em !important; }
.tracking-wide { letter-spacing: 0.025em !important; }
.tracking-wider { letter-spacing: 0.05em !important; }
.tracking-widest { letter-spacing: 0.1em !important; }

/* 文字溢出 */
.truncate {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.overflow-ellipsis { text-overflow: ellipsis !important; }
.overflow-clip { text-overflow: clip !important; }

/* 换行 */
.whitespace-normal { white-space: normal !important; }
.whitespace-nowrap { white-space: nowrap !important; }
.whitespace-pre { white-space: pre !important; }
.whitespace-pre-line { white-space: pre-line !important; }
.whitespace-pre-wrap { white-space: pre-wrap !important; }

/* 断词 */
.break-normal { overflow-wrap: normal !important; word-break: normal !important; }
.break-words { overflow-wrap: break-word !important; }
.break-all { word-break: break-all !important; }

/* 标题样式 */
.heading-1 { font-size: 2.5rem; font-weight: 700; line-height: 1.2; margin-bottom: 1rem; }
.heading-2 { font-size: 2rem; font-weight: 600; line-height: 1.3; margin-bottom: 0.875rem; }
.heading-3 { font-size: 1.75rem; font-weight: 600; line-height: 1.4; margin-bottom: 0.75rem; }
.heading-4 { font-size: 1.5rem; font-weight: 500; line-height: 1.4; margin-bottom: 0.625rem; }
.heading-5 { font-size: 1.25rem; font-weight: 500; line-height: 1.5; margin-bottom: 0.5rem; }
.heading-6 { font-size: 1.125rem; font-weight: 500; line-height: 1.5; margin-bottom: 0.5rem; }

/* 段落样式 */
.paragraph { margin-bottom: 1rem; line-height: 1.6; }
.paragraph-large { font-size: 1.125rem; margin-bottom: 1.25rem; line-height: 1.7; }
.paragraph-small { font-size: 0.875rem; margin-bottom: 0.75rem; line-height: 1.5; }

/* 链接样式 */
.link { color: #007bff; text-decoration: none; transition: color 0.3s ease; }
.link:hover { color: #0056b3; text-decoration: underline; }
.link-secondary { color: #6c757d; }
.link-secondary:hover { color: #545b62; }
.link-success { color: #28a745; }
.link-success:hover { color: #1e7e34; }
.link-danger { color: #dc3545; }
.link-danger:hover { color: #c82333; }

/* 列表样式 */
.list-unstyled { list-style: none; padding-left: 0; }
.list-inline { list-style: none; padding-left: 0; }
.list-inline li { display: inline-block; margin-right: 1rem; }
.list-inline li:last-child { margin-right: 0; }

/* 引用样式 */
.blockquote { 
  margin: 1rem 0; 
  padding: 1rem 1.5rem; 
  border-left: 4px solid #007bff; 
  background: #f8f9fa; 
  font-style: italic; 
}
.blockquote-footer { 
  margin-top: 0.5rem; 
  font-size: 0.875rem; 
  color: #6c757d; 
}

/* 代码样式 */
.code { 
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; 
  background: #f8f9fa; 
  padding: 0.125rem 0.25rem; 
  border-radius: 0.25rem; 
  font-size: 0.875em; 
}
.pre { 
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; 
  background: #f8f9fa; 
  padding: 1rem; 
  border-radius: 0.5rem; 
  overflow-x: auto; 
  margin: 1rem 0; 
}

/* 响应式文字大小 */
@media (max-width: 768px) {
  .heading-1 { font-size: 2rem; }
  .heading-2 { font-size: 1.75rem; }
  .heading-3 { font-size: 1.5rem; }
  .heading-4 { font-size: 1.25rem; }
  .heading-5 { font-size: 1.125rem; }
  .heading-6 { font-size: 1rem; }
  
  .text-4xl { font-size: 2rem; }
  .text-5xl { font-size: 2.5rem; }
  .text-6xl { font-size: 3rem; }
}
